1. Field of the Invention
Embodiments of the invention relates to the field of operating systems, and more specifically, to thread management.
2. Description of Related Art
Multithreading technologies have become popular in multiprocessor systems to support various levels of parallelism, to enable dynamic load balancing, to support virtual processors, and to enhance system performance. One of the challenges in designing an efficient multithreaded multiprocessor system is thread scheduling.
The performance of a multithreaded multiprocessor system depends on a number of factors such as local memory utilization, thread communication, and load balancing. Existing techniques typically treat threads equally without discriminating their usage. These techniques have a number of disadvantages. First, a thread that flushes its local caches frequently may cause unbalanced cache usage for other threads, resulting in poor performance. Second, a thread having an extensive cache usage may use up memory space of other threads, causing frequent cache updates, thread migration, and thread communication. Third, a system thread performing system-level functions may interfere or be interfered by application threads. These frequent activities tend to degrade system performance.